package Dungeon;

import SquarePackage.Direction;
import SquarePackage.Square;

/**
 * Class for a shaft, this is a dungeon which can only vary in one direction.
 * 
 * @author 	Brecht Reynders en Florian Hendrickx
 * @version	1.0
 */
public class Shaft extends Dungeon {
	
	/**
	 * Initializes a new shaft with the given coordinates for the maximum dimension.
	 * 
	 * @param	maxX
	 * 			The maximum x-coordinate value.
	 * @param	maxY
	 * 			The maximum y-coordinate value.
	 * @param	maxZ
	 * 			The maximum z-coordinate value. 
	 * @param	direction
	 * 			The direction for this shaft.			
	 * @effect	The given coordinates are the coordinates of the maximum dimension.
	 * 			| Dimension(maxX, maxY, maxZ) == new.getMaxDimension() 
	 * @post 	The given direction is the new direction for this shaft.
	 * 			| new.getDirection = direction
	 */
	public Shaft(long maxX, long maxY, long maxZ, Direction direction) {
		super(maxX, maxY, maxZ);
		this.DIRECTION = direction;
	}


	/**
	 * Initializes a new shaft with the given dimension as maximum dimension.
	 * 
	 * @param 	maxDimension
	 * 			The maximum dimension
	 * @param	direction
	 * 			The direction for this shaft.
	 * @effect	The given maximum dimension is the new max dimension.
	 * 			| new.getMaxDimension = maxDimension
	 * @post 	The given direction is the new direction for this shaft.
	 * 			| new.getDirection = direction
	 */
	public Shaft(Dimension maxDimension, Direction direction) {
		super(maxDimension);
		this.DIRECTION = direction;
		}

	/**
	 * Initializes a default dungeon.
	 * 
	 * @effect	The dungeon is initialized with 20,20,20 as maximum dimension.
	 * 			| this(new Dimension(20,20,20))
	 * @post 	The given direction is the new direction for this shaft.
	 * 			| new.getDirection = direction.CEILING
	 */
	public Shaft() {
		super();
		this.DIRECTION = Direction.CEILING;
	}
	
	/**
	 * Variable registering in what direction this shaft could extend.
	 */
	private final Direction DIRECTION;
	
	/**
	 * Return the direction in which extensions are possible.
	 */
	public final Direction getDirection(){
		return DIRECTION;
	}


	public void fill(Square baseSquareShaft, int i) {
		// TODO Auto-generated method stub
		
	}
}
